Bit reversing apparatus

ABSTRACT

Apparatus is disclosed for reversing the bit order of a selected portion of a digital word. A first shifter is provided to shift the position of the unselected portion of the digital word to a set of terminals. The digital word, in bit reversed order, is coupled to an adjacent set of terminals. The two sets of terminals are fed to a second shifter which couples to the output thereof the digital word with the selected portion thereof in bit-reversed order. Such apparatus is adapted for use in addressing an FFT processor adapted to operate with different batch sizes to retrieve calculated frequency components in ascending order of frequency.

The invention herein described was made in the course of, or under a contract or subcontract thereunder, with the Department of Defense.

BACKGROUND OF THE INVENTION

This invention relates generally to digital circuitry and more particularly to digital circuitry adapted to reverse the order of a selected portion of a digital word.

As is known in the art, it is sometimes necessary to reverse the order of the bits of a digital word. For example, in many Fast Fourier Transformer (FFT) processors it is required that memory addresses in such processors be bit-reversed at various steps in the processing, for example in retrieving the computed frequency components in ascending order of frequency. In applications where the entire address is to be bit-reversed one technique used is to couple the address in bit-reversed order and non-bit reversed order to a selector and selectively coupling either the bit-reversed address or the non-bit reversed address to the output of the selector. Such technique is described in U.S. Pat. No. 3,673,399 issued June 27, 1972.

In many FFT applications the address generator produces a fixed length digital word. However, the FFT processors are adapted to perform FFT processing for a variety of data or batch sizes, say a four-point FFT, an eight-point FFT and a sixteen-point FFT. One such processor is described in U.S. Pat. No. 3,875,391, inventors G. N. Shapiro and H. S. Sobel, issued Apr. 1, 1975 and assigned to the same assignee as the present invention. With such type processors, if it is desired to obtain the computed frequency components in ascending order of frequency, it would be desirable if a different number of bits of the address were reversed depending on the batch size of the FFT. For example, if the address is a six bit digital word a₅ a₄ a₃ a₂ a₁ a₀ (where a₀ is the least significant bit and a₅ is the most significant bit) in one batch size it may be desired to reverse only the three least significant bits to form an address a₅ a₄ a₀ a₁ a₂ while for another batch size it may be desired to bit-reverse the five least significant bits to form the address a₅ a₀ a₁ a₂ a₃ a₄. It is evident then that using the multiplexer technique described above requires coupling to such multiplexer all possible bit-reversed address combinations required for all possible batch sizes which are to be processed, thereby requiring extensive hardware in generating proper addresses.

SUMMARY OF THE INVENTION

In accordance with the present invention apparatus is provided for reversing the bit order of a selected portion of an m bit digital word. Such apparatus includes: (a) means for producing the m bit digital word in bit-reversed order at a first set of terminals; (b) means coupled to the m bit digital word in non-bit reversed order for coupling the unselected portion of the m bit digital word in non-bit reversed order to a second set of terminals; and (c), means for coupling the portion of the first set of terminals producing the selected portion of the m bit digital word in bit-reversed order and the second set of terminals to a set of m output terminals to produce an output digital word, such output digital word being the m bit digital word with the selected portion thereof in bit-reversed order and the unselected portion in non-bit reversed order.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention will be more fully understood from the following more detailed description taken together in conjunction with the accompanying drawings in which:

FIG. 1 is a block diagram of bit-reversing apparatus according to the invention;

FIGS. 2 and 3 are block diagrams useful in understanding the operation of the bit-reversing apparatus shown in FIG. 1;

FIG. 4 is a block diagram of an alternative embodiment of a bit-reversing apparatus;

FIG. 5 is a block diagram useful in understanding the bit-reversing apparatus shown in FIG. 4; and

FIG. 6 is a block diagram of an FFT processor including the bit-reversing apparatus shown in FIG. 1.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

Referring now to FIG. 1, bit-reversing apparatus 10 is shown adapted to bit reverse a selected portion of the n least significant bits of an m bit digital word, here a six bit digital word a₅ a₄ a₃ a₂ a₁ a₀, where a₅ is the most significant bit and a₀ is the least significant bit. Such apparatus 10 includes a conventional register 12 for storing the six bit digital word. Thus, the six bits appear at output terminals 18₅ -18₀ of such register 12, respectively, as indicated. A first shifter 14 is included. Such shifter has m input terminals, here terminals 20₅ -20₀, coupled respectively to output terminals 18₅ -18₀, as shown. Output terminals 22₅ -22₀ of such shifter 14 are provided, as shown. Shifter 14 is of any conventional design and produces a second m bit digital word b₅ b₄ b₃ b₂ b₁ b₀ at output terminals 22₅ -22₀, respectively, (where b₅ is the most significant bit appearing at output terminal 22₅) and b₀ is the least significant bit (appearing at output 22₀). The second m bit digital word has as its (m-n) (here (6-n)) least significant bits the (m-n) most significant bits of the digital word stored in the register 12. That is, the first shifter 14, in response to a control signal representative of the number of bits n to be bit reversed and fed to such shifter 14 via line 16, produces a second digital word having as a portion thereof the unselected portion of the digital word stored in the register shifted n bit positions, here to the right. An example of a typical shifter is a Fairchild F100158 described in ECL Data Book published by Fairchild Camera & Instrument Corp., 1977, pgs. 10-48-10-53. The following truth table describes the operation of the shifter 14:

    ______________________________________                                         n        b.sub.5 b.sub.4 b.sub.3                                                                              b.sub.2                                                                              24 b.sub.1                                                                           b.sub.0                             ______________________________________                                         0        a.sub.5 a.sub.4 a.sub.3                                                                              a.sub.2                                                                              a.sub.1                                                                              a.sub.0                             (1).sub.10                                                                              0       a.sub.5 a.sub.4                                                                              a.sub.3                                                                              a.sub.2                                                                              a.sub.1                             (2).sub.10                                                                              0       0       a.sub.5                                                                              a.sub.4                                                                              a.sub.3                                                                              a.sub.2                             (3).sub.10                                                                              0       0       0     a.sub.5                                                                              a.sub.4                                                                              a.sub.3                             (4).sub.10                                                                              0       0       0     0     a.sub.5                                                                              a.sub.4                             (5).sub.10                                                                              0       0       0     0     0     a.sub.5                             (6).sub.10                                                                              0       0       0     0     0     0                                   ______________________________________                                    

Referring also to FIG. 2 and considering as an example the case where n=(3)₁₀, in response to a control signal representative of n=(3)₁₀ input terminal 20₅ becomes connected to output terminal 22₂ ; input terminal 20₄ becomes connected to output terminal 22₁ ; and input terminal 20₃ becomes connected to output terminal 22₆ as indicated by the dotted lines in FIG. 2. Hence, the second digital word b₅ b₄ b₃ b₂ b₁ b₀ is, in this example, 0 0 0 a₅ a₄ a₃. Referring now also to FIG. 3, a second example is shown here where n=(5)₁₀. In response to a control signal on line 16 representative of (5)₁₀ input terminal 20₅ becomes connected to output terminal 22₀ as indicated by the dotted line, and, hence, the second digital word b₅ b₄ b₃ b₂ b₁ b₀ is, in this second example, 0 0 0 0 0 b₅.

Referring again to FIG. 1, a second shift register 28 is included, such shifter 28 having input terminals 30₁ -30₀, as shown. The input terminals 30₁₁ -30₆ are connected to output terminals 22₅ -22₀, respectively, as shown. As noted, the second digital word b₅ . . . b₀ is connected in non-bit reversed order to input terminals 30₁₁ -30₆, respectively. Input terminals 30₅ -30₀ are connected to output terminals 18₀ -18₅, respectively. It is noted, therefore, that the digital word stored in register 12, i.e., a₅ . . . a₀, is coupled to input terminals 30₅ -30₀, respectively, in bit-reversed order, ie., a₀ . . . a₅. The second shifter 28 has output terminals 32₅ -32₀ and produces an output digital word c₅ . . . c₀, such bits appearing on terminals 32₅ -32₀, respectively, as indicated, where c₅ is the most significant bit and c₀ is the least significant bit. Here, however, the bits fed to input terminals 30₁₁ -30₀, respectively, are shifted to the left n places in response to a control signal representative of n fed to shifter 28 via line 40. The following truth table describes the operation of the second shifter 28:

    ______________________________________                                         n        C.sub.5 C.sub.4 C.sub.3                                                                              C.sub.2                                                                              C.sub.1                                                                              C.sub.0                             ______________________________________                                         0        b.sub.5 b.sub.4 b.sub.3                                                                              b.sub.2                                                                              b.sub.1                                                                              b.sub.0                             (1).sub.10                                                                              b.sub.4 b.sub.3 b.sub.2                                                                              b.sub.1                                                                              b.sub.0                                                                              a.sub.0                             (2).sub.10                                                                              b.sub.3 b.sub.2 b.sub.1                                                                              b.sub.0                                                                              a.sub.0                                                                              a.sub.1                             (3).sub.10                                                                              b.sub.2 b.sub.1 b.sub.0                                                                              a.sub.0                                                                              a.sub.1                                                                              a.sub.2                             (4).sub.10                                                                              b.sub.1 b.sub.0 a.sub.0                                                                              a.sub.1                                                                              a.sub.2                                                                              a.sub.3                             (5).sub.10                                                                              b.sub.0 a.sub.0 a.sub.1                                                                              a.sub.2                                                                              a.sub.3                                                                              a.sub.4                             (6).sub.10                                                                              a.sub.0 a.sub.1 a.sub.2                                                                              a.sub.3                                                                              a.sub.4                                                                              a.sub.5                             ______________________________________                                    

Referring now also to FIG. 2 and considering again the example where n=(3)₁₀ in response to a control signal on line 40 representative of (3)₁₀, input terminal 30₈ becomes connected to output terminal 32₅ ; input terminal 30₇ becomes connected to output terminal 32₄ ; input terminal 30₆ becomes connected to output terminal 32₃ ; input terminal 30₅ becomes connected to output terminal 32₂ ; input terminal 30₄ becomes connected to output terminal 32₁ ; and input terminal 30₃ becomes connected to output terminal 32₀, as indicated by the dotted lines. Hence, the digital word appearing at output terminals 32₅ -32₀ is a₅ a₄ a₃ a₀ a₁ a₂, that is the digital word stored in register 12 with the three least significant bits in reverse order.

Referring now also to FIG. 3 and again considering the example where n=(5)₁₀ input terminals 30₆ -30₁ become connected to output terminals 32₅ -32₀, respectively, to produce at such output terminals the digital word a₅ a₀ a₁ a₂ a₃ a₄, that is, the digital word stored in register 12 here with the five least significant bits in bit reverse order.

In summary then, the second shifter 28 is coupled to the digital word stored in register 12 in bit-reversed order and to the second digital word produced at the output of the first shifter 14. The second shifter, in response to a control signal on line 40 representative of the number of bits n to be reversed, produces an output digital word having the previously shifted (m-n) here (6-n) most significant bits of the digital word stored in register 12 and the n least significant bits of such stored digital word in bit-reversed order shifted, here to the left, n bit positions.

Referring now to FIG. 4, apparatus 10' is shown adapted to bit-reverse a selected portion of the n most significant bits of an m bit digital word, here a six bit digital word a₅ a₄ a₃ a₂ a₁ a₀, where a₅ is the most significant bit and a₀ is the least significant bit. Here shifter 14' is of conventional design and is similar to shifter 14 (FIG. 1) except that the digital word fed to input terminals 20₅ '-20₀ ' thereof, here a₅ -a₀, respectively, is shifted to the left n places in response to the control signal representative of n fed to such shifter 14' via line 16'. The shifter 14' produces a digital word b₅ '-b₀ ' at output terminals 22₅ -22₀, respectively, where b₅ ' is the most significant bit and b₀ ' is the least significant bit. Thus, referring briefly to FIG. 5, for example, where n=(3)₁₀, in response to the control signal (3)₁₀ on line 16, input terminals 20₂ '-22₀ ' become connected to output terminals 22₅ '-22₃ ' as indicated by the dotted lines so that the second digital word b₅ ' . . . b₀ ', produced at terminals 22₅ '-22₀ ', respectively, is here a₂ a₁ a₀ 0 0 0 .

Referring again to FIG. 4, a second selector 28' is provided, input terminals 30₁₁ '-30₆ ' being connected to the digital word stored in register 12 in bit-reversed order (i.e., a₀ -a₅) and terminals 30₅ '-30₀ ' are connected to the second digital word in non-bit reversed order (i.e., b₅ '-b₀ '). Here shift 28' shifts the data fed thereto to the left n bit positions in response to a control signal on line 40'. That is, referring briefly also to FIG. 5 and considering again the example where n=(3)₁₀, input terminals 30₈ '-30₃ ' become connected to output terminals 32₅ '-32₀ ' to produce at the output terminal a₃ a₄ a₅ a₂ a₁ a₀, respectively, that is, the digital word stored in register 12 with the three most significant bits in bit-reverse order.

Referring now to FIG. 6 an FFT processor 50 is shown. Here N digital words are fed via the data bus through multiplexer 52 to a memory unit 54 at addresses supplied to the address terminal of such memory unit 54. Once such N digital words are stored they are fed through selector 56 to an arithmetic unit 58 for processing. The processed data recycles between the arithmetic unit 58 and the memory unit 54 in a well known manner, as described in the above-referenced U.S. Pat. No. 3,875,391, until the desired FFT process is complete. As is known, in order to retrieve the N computed frequency components in ascending order of frequency from the memory unit 54 the non-bit reversed addresses are, as during the computation process, generated by the controller and address generator 62. While during the computation process the addresses supplied by the address generator 62 were not bit-reversed (i.e. n=0), here it is desired to bit-reverse n=(log₂ N) bits of the addresses produced by the address generator 62.

The addresses produced by the address generator 62 are thus fed to the input of the "bit-reverser" or bit-reversing apparatus 10 as shown. The controller 60 produces control signals n=log₂ N on lines 16, 40. Hence the address supplied to the address terminals of the memory unit 54 are the addresses produced by the address generator 62 with the n least significant bits "bit-reversed". During readout the frequency components are thus retrieved in ascending order of frequency and pass through the selector 56 to the DATA OUT bus, as shown.

Having described preferred embodiments of this invention, it is now evident that other embodiments incorporating the concepts may be used. It is felt, therefore, that this invention should not be restricted to the disclosed embodiments, but rather should be limited only by the spirit and scope of the appended claims. 

What is claimed is:
 1. Apparatus for reversing the order of a selected portion of an m bit digital word, comprising:(a) means for producing the m bit digital word in bit-reversed order at a first set of terminals; (b) means coupled to the m bit digital word in non-bit reversed order for coupling the unselected portion of the m bit digital word in non-bit reversed order to a second set of terminals; and (c) shifter means for coupling the portion of the first set of terminals and the second set of terminals to a set of m output terminals producing an output digital word, such output digital word being the m bit digital word with the selected portion thereof in bit-reversed order and the unselected portion in non-bit reversed order.
 2. Apparatus for reversing the order of a selected portion of n bits of an m bit digital word, comprising:(a) a first shifter, having m input terminals fed by the m bit digital word and m output terminals, for shifting the position of the (m-n) unselected bits of the digital word from the most/least significant bit portion to the least/most significant bit portion; (b) a second shifter having 2m input terminals and 2m output terminals, m adjacent ones of such input terminals being connected to the m output terminals of the first shifter and the remaining m adjacent ones of such input terminals being connected to the m bit digital word in bit-reversed order, for producing at the m output terminals thereof the m bit digital word with the selected portion of n bits thereof in bit-reversed order.
 3. The apparatus recited in claim 2 wherein the first shifter includes means for shifting the digital word fed thereto to the output terminals thereof in a first direction and the second shifter includes means for shifting the digital word fed thereto to output terminals thereof in an opposite direction. 